///////////////////////////////////////////////////////////////////////////////
//
//    Copyright 2010-2012 Geoffrey TOURON (geoffrey.touron@gmail.com)
//
//    This file is part of Chasis.
//
//    Chasis is free software: you can redistribute it and/or modify
//    it under the terms of the GNU General Public License as published by
//    the Free Software Foundation, either version 3 of the License, or
//    (at your option) any later version.
//
//    Chasis is distributed in the hope that it will be useful,
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//    GNU General Public License for more details.
//
//    You should have received a copy of the GNU General Public License
//    along with Chasis.  If not, see <http://www.gnu.org/licenses/>.
//
///////////////////////////////////////////////////////////////////////////////

#include <iostream>
#include "fmod/fmod.h"
#include "sound.hpp"

Audio			Sound::_audio;
Soundmanager	Sound::manager;

Sound::Sound(std::string const &name, bool const music)
{
	int	flag = FMOD_HARDWARE | FMOD_2D;

	if (music)
		flag |= FMOD_CREATESTREAM;
	else
		flag |= FMOD_CREATESAMPLE | FMOD_LOOP_OFF;
	if (FMOD_System_CreateSound(_audio._system, name.c_str(), flag, 0, &_snd) != FMOD_OK)
	{
		std::cerr << "Error: sound not found \"" << name << "\"" << std::endl;
		_snd = 0;
	}
}

Sound::~Sound()
{
	FMOD_Sound_Release(_snd);
}

void	Sound::play()
{
	FMOD_System_PlaySound(_audio._system, FMOD_CHANNEL_FREE, _snd, 0, 0);
}
